home *** CD-ROM | disk | FTP | other *** search
-
- #ifndef __dl_linklist_h
- #define __dl_linklist_h
- #ifndef __dl_core_h
- #include "Core.h"
- #endif
- typedef struct linklist_header
- {
- struct linklist_header *next;
- struct linklist_header *previous;
- } linklist_header;
- extern void LinkList_AddToHead(linklist_header *anchor, linklist_header *item);
- extern void LinkList_AddToTail(linklist_header *anchor, linklist_header *item);
- extern void LinkList_InsertBefore(linklist_header *anchor,
- linklist_header *pos,
- linklist_header *item);
- extern void LinkList_InsertAfter(linklist_header *anchor,
- linklist_header *pos,
- linklist_header *item);
- extern BOOL LinkList_InList(linklist_header *anchor, linklist_header *item);
- extern BOOL LinkList_ListLength(linklist_header *anchor);
- extern void LinkList_Unlink(linklist_header *anchor, linklist_header *item);
- #define LinkList_FirstItem(x) ((void *)(x)->next)
- #define LinkList_LastItem(x) ((void *)(x)->previous)
- #define LinkList_Init(x) \
- { \
- (x)->next = NULL; \
- (x)->previous = NULL; \
- }
- #define LinkList_InitItem(x) \
- { \
- (x)->next = NULL; \
- (x)->previous = NULL; \
- }
- #define LinkList_NextItem(x) ((void *) ((linklist_header *)(x))->next)
- #define LinkList_PreviousItem(x) ((void *) ((linklist_header *)(x))->previous)
- #endif
-